1. Field of the Invention
This invention relates to a method and apparatus for preventing race conditions of input signals. More particularly, this invention relates to a method and apparatus for preventing race conditions of inputs in a burner control system.
2. Description of the Prior Art
There are many applications for industrial and commercial heating systems such as boilers and burners. These boilers and burners are generally controlled by some type of control system which must meet various safety standards. The control system must also be cost effective and easy to use. The boiler/burner control systems generally monitor various inputs and, based on those inputs, command the boiler to be in a desired state (e.g., ignition, stand-by, off). The inputs often are in the form of AC input signals which indicate whether relay contacts, sensor switches, safety interlocks or the like are open or closed based upon the presence or absence of an AC signal.
The input signals to computerized boiler/burner control systems typically include digital input signals derived from the AC input signals, and must be very reliable in order for the control system to operate the boiler or burner in a safe manner. A main priority for the boiler/burner control system is to react to real events that occur in the boiler or burner, in the various valves which control the boiler or burner, and other control circuitry. Although reaction to real events is desired, it is also desirable for the boiler control system to tolerate noise which will normally be present in the control system environment.
There are several types of noise which are commonly present in burner environments. Real-world line noise may occur as an isolated event lasting only a few microseconds, or it may tend to occur in bursts that are a few milliseconds to several line cycles long. Noise bursts are caused by various sources including a large motor turning on and off, a heavy contactor being opened or closed, or ignition noise from the ignition contactor being opened or closed, or ignition noise from the ignition mechanism on the burner. Additionally, if the noise is caused by a device that is in some way synchronized to the AC power line frequency then a noise burst lasting up to several milliseconds may be both synchronized and repetitive, appearing at the same time with respect to the beginning of each line cycle. Examples of devices which may produce synchronous, repetitive noise include emergency power generators, power or speed controls which use triac switching devices to deliver only part of each line cycle to the load, and large synchronous motors. Finally, a short-duration line dropout may be considered as a form of noise, in that input signals will be invalid until the line voltage returns.
Reading valid input data samples during a noise burst will either be difficult, since only an occasional sample will be unaffected, or impossible, since all samples may be corrupted during the noise burst. Furthermore, if the noise burst is synchronous and repetitive and it also coincides with the time of reading the input data samples, then all data samples may be more or less corrupted and the occurrence of invalid data samples will be chronic and persistent.
It is desirable for the control system to tolerate a certain amount of noise to remain cost effective. In other words, if the burner control system were to shut down the burner each time it detected an invalid input data sample, many nuisance shut-downs would occur as a result of normal, expected line noise. The time and effort required for an operator to detect the shut-down and the reason for the shut-down, and to restart the burner or boiler is very costly. Although it is desirable to tolerate a certain amount of noise, there must be enough valid input data samples available to the control system to allow it to control the burner safely. Therefore, excessive noise must not be tolerated by the burner control system.
For these reasons, there is a need for a burner control system which tolerates normal line noise yet which, even in the presence of noise, ensures that the quality of the data input samples is high enough to be generally trustworthy and that the noise is not excessive.